package top.blueShark.template.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import top.blueShark.template.entity.SysMenu;

import java.util.List;

@Mapper
public interface SysMenuMapper {

	// 查询所有菜单
	List<SysMenu> selectAllMenu();

	List<SysMenu> selectRoleMenu(@Param("roleIds") List<String> roleIds);

	// 校验路径是否存在 (新增和修改时用，修改时传入id，新增时id为null)
	int countByPath(@Param("path") String path, @Param("id") Integer id);

	// 校验名称是否存在 (新增和修改时用，修改时传入id，新增时id为null)
	int countByName(@Param("name") String name, @Param("id") Integer id);

	/**
	 * 插入菜单
	 */
	int insertMenu(SysMenu menu);

	/**
	 * 更新菜单
	 */
	int updateMenu(SysMenu menu);

	/**
	 * 根据ID删除菜单
	 */
	int deleteMenuById(@Param("id") Integer id);

	/**
	 * 根据父ID查询子菜单
	 */
	List<SysMenu> selectByPid(@Param("pid") Integer pid);

	/**
	 * 根据菜单ID删除角色菜单关联
	 */
	int deleteRoleMenuByMenuId(@Param("menuId") Integer menuId);
	
}